Online entities offer a wide variety of electronic content and services to a variety of different devices, including personal computers (PCs), electronic book viewers, portable digital assistants (PDAs), mobile telephones, pocket PCs, smart phones, and set-top boxes such as televisions, digital video recorders (DVRs), and gaming consoles. These devices often access various web pages or web services, such as those associated with online gaming services.
For example, many online gaming services offer access to single and multi-player games in an online environment. Conventionally, an online game is implemented by a local client device (e.g., a personal computer) that is in communication with other client devices through the Internet such that each client device executes instructions to run a local gaming environment. In some implementations, the local client devices are responsible for image rendering and general game operation. Typically, once a local client device connects to an online gaming environment through a gaming server, the local client device will provide information that is relevant to the online gaming environment to the gaming server. For example, a local client device may transmit information that relates to the status of objects or graphical manifestations of other users in the gaming environment. By receiving information that relates to the status of objects or graphical manifestations of other users in the gaming environment, the server may monitor changes in the gaming environment that alter the gaming environment for other users. Since the game is installed on each local client device, and each local client device operates the game independently, throughout game play, data that updates the game state is transmitted by the local client device to the server and vice versa. However, this data transmission may experience a time delay because the local client devices are a distance away from the server. Furthermore, when receiving data from the server, each client device will need to render an appropriate image for display, which takes time. Latency delays due to data transmission and/or rendering of data may slow the game speed. Such latency can diminish the quality and enjoyment of the game experience for players of the game.
In contrast to the games discussed above, multi-player games have been implemented on the server rather than on the individual local client devices. In server-based game streaming environments, a video stream of the game is transmitted to a local client device. Server-based game streaming environments require relatively little computing power on the part of the local client device to effectively execute the game because, generally, the local client device need only receive and process a video stream.
Unfortunately, server-based game streaming environments also experience latency. In server-based gaming environments, data transmission speeds may cause the local client device to present the gaming environment at a time period that is slightly later than the current gaming environment at the server. In other words, this latency means that the user's perception of the current gaming environment is not an accurate perception of the gaming environment in the gaming server. Thus, if an object in the gaming environment moves before the user attempts to manipulate the object using a location-based input device (e.g., a mouse, trackball, tablet, keyboard-controlled cursor, etc.) in the gaming environment, the user may find that the position of the object in the gaming server is different from where the user perceives the object to be located. The user, in attempting to select or otherwise manipulate an object, may “miss” the object because of latency.
In view of the above, systems and methods are needed to overcome latency problems in server-based games in order to reduce selection misses.